#include <apue.h>

sigjmp_buf env;

void foo(int & val)
{
	val = 10;
	siglongjmp(env, 1);
}

int main()
{
	int autoval = 99;
	int arr[8] = { 1, 2, 3, 4, 5, 6, 7, 8, };
	if(sigsetjmp(env, 1) != 0)
	{
		printf("jmp\n");
		for(int i = 0; i < 8; i++)
			printf("%d  ", arr[i]);
		printf("%d\n", autoval);
		return 1;
	}
	foo(arr[5]);
	printf("finish\n");
	return 0;
}

